using Server.DTOs;
using System.Threading.Tasks;

namespace Server.Services
{
    /// <summary>
    /// FTP服务接口，定义FTP相关操作
    /// </summary>
    public interface IFtpService
    {
        /// <summary>
        /// 验证用户上传权限并返回FTP凭证
        /// </summary>
        /// <param name="uploadInfo">上传信息</param>
        /// <returns>FTP上传凭证</returns>
        Task<Server.DTOs.FtpUploadCredentials?> VerifyUploadPermissionAsync(Server.DTOs.UploadInfo uploadInfo);
        
        /// <summary>
        /// 验证用户下载权限并返回FTP凭证
        /// </summary>
        /// <param name="fileInfo">文件信息</param>
        /// <returns>FTP下载凭证</returns>
        Task<Server.DTOs.FtpUploadCredentials?> VerifyDownloadPermissionAsync(Server.DTOs.FileInfo fileInfo);
        
        /// <summary>
        /// 删除FTP服务器上的文件
        /// </summary>
        /// <param name="filePath">文件路径</param>
        /// <returns>是否删除成功</returns>
        Task<bool> DeleteFileFromFtpAsync(string filePath);
    }
}